#include "main.h"

/*
*Metodo single, funciona para enviar un mensaje a un unico cliente del CMI
* recibe la cabeza de la lista, el nombre del usuario destino, y el mensaje
*/
int single(struct user *head,char *name,char *msg)
{
	int n;// variable entera que guarda el valor que retorna el metodo send
	FILE *fp;// un archivo que va a guardar el registro
	struct user *p;// crea una estructura usuario
	p=head->next;// obtiene el siguiente nodo de la lista
	while(p!=NULL)// mientras existan nodos en la lista
	{
		if(strcmp(p->user_name,name)==0)//si el nombre del usuario del nodo actual es igual al dado por el usuario
		{
			n=send(p->sockfd,msg,strlen(msg),0);//envia el mensaje por el socket
		if(n<=0)//si no se logra enviar
			return (-1);//termina el metodo
		else// si se logra enviar el mensaje
		{
			if((fp=fopen(p->user_name,"a+"))==NULL)// si no logra abrir el archivo
			{
				perror("open");//imprime error
				return (-1);// termina el metodo
			}
			fputs(msg,fp);// escribe el mensaje en el archivo
			fclose(fp);// cierra el archivo
			return 0;// termina el metodo
		}
		
		}//si no es igual el nombre de usuario
		p=p->next;// avanza de nodo
	}
}
